package com.xinsoft.entity.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.xinsoft.common.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 物料
 * @TableName sys_material
 */
@Data
public class SysMaterialImportDTO extends BaseEntity implements Serializable {

    /**
     * 物料类型
     */
    @NotNull(message = "物料类型不能为空！")
    @Excel(name="物料类型")
    private String materialTypeName;

    /**
     * 默认仓库
     */
    @Excel(name="默认仓库")
    private String defaultWhName;

    /**
     * 默认仓位
     */
    @Excel(name="默认仓位")
    private String defaultWhItemName;

    /**
     * 供应商
     */
    @Excel(name="供应商")
    private String supplierName;

    /**
     * 物料编码
     */
    @NotBlank(message = "物料编码不能为空！")
    @Excel(name="物料编码")
    private String materialNo;

    /**
     * 物料名称
     */
    @NotBlank(message = "物料名称不能为空！")
    @Excel(name="物料名称")
    private String materialName;

    /**
     * 规格属性
     */
    @Excel(name="规格属性")
    private String materialSpecific;

    /**
     * 物料属性-字典项
     */
    @NotNull(message = "物料属性不能为空！")
    @Excel(name="物料属性")
    private String materialAttrName;

    /**
     * 计价方法-1-批次认定 2-加权平均
     */
    @NotNull(message = "计价方法不能为空！")
    @Excel(name="计价方法")
    private String valuationMethodName;

    /**
     * 工艺路线
     */
    @Excel(name="工艺路线")
    private String routingName;

    /**
     * 图号
     */
    @Excel(name="图号")
    private String drawingNo;

    /**
     * 是否库存预警
     */
    @Excel(name="是否库存预警")
    private String doStockWarningName;

    /**
     * 安全库存
     */
    @Excel(name="安全库存")
    private BigDecimal secStockNum;

    /**
     * 最大库存
     */
    @Excel(name="最大库存")
    private BigDecimal maxStockNum;

    /**
     * 最小库存
     */
    @Excel(name="最小库存")
    private BigDecimal minStockNum;

    /**
     * 是否进行保质期管理
     */
    @Excel(name="是否进行保质期管理")
    private String doExpWarningName;

    /**
     * 保质期
     */
    @Excel(name="保质期")
    private Integer expDays;

    /**
     * 是否进行批次管理
     */
    @Excel(name="是否进行批次管理")
    private String doLotName;

    /**
     * 计量单位
     */
    @NotNull(message = "计量单位不能为空！")
    @Excel(name="计量单位")
    private String mainUnitName;

    /**
     * 辅助单位
     */
    @Excel(name="辅助单位")
    private String viceUnitName;

    /**
     * 换算比例
     */
    @Excel(name="换算比例")
    private String convCoefficient;

    /**
     * 税率
     */
    @NotNull(message = "税率不能为空！")
    @Excel(name="税率")
    private BigDecimal taxRate;

    /**
     * 单件重量
     */
    @Excel(name="单件重量")
    private BigDecimal everyWeight;

    /**
     * 数量精度-小数位数
     */
    @NotNull(message = "数量精度-小数位数不能为空！")
    @Excel(name="数量精度-小数位数")
    private Integer numPrecision;

    /**
     * 单价精度-小数位数
     */
    @NotNull(message = "单价精度-小数位数不能为空！")
    @Excel(name="单价精度-小数位数")
    private Integer pricePrecision;

    /**
     * 销售单价(主单位/含税)
     */
    @Excel(name="销售单价(主单位/含税)")
    private BigDecimal taxSaleUnitPrice;

    /**
     * 最低销售单价(主单位/含税)
     */
    @Excel(name="最低销售单价(主单位/含税)")
    private BigDecimal taxMinSaleUnitPrice;

    /**
     * 采购单价(主单位/含税)
     */
    @Excel(name="采购单价(主单位/含税)")
    private BigDecimal taxPurchaseUnitPrice;

    /**
     * 备用字段1
     */
    private String byzd1;

    /**
     * 备用字段2
     */
    private String byzd2;

    /**
     * 审核人
     */
    private Integer auditId;

    /**
     * 审核状态 0-未审核 1-已审核
     */
    private Integer auditStatus;


    private static final long serialVersionUID = 1L;
}